Skip to content

Use older version of Qt#964

Merged
ann0see merged 1 commit into
jamulussoftware:masterfrom
ann0see:UseOldQt
Feb 18, 2021
Merged

Use older version of Qt#964
ann0see merged 1 commit into
jamulussoftware:masterfrom
ann0see:UseOldQt

Conversation

@ann0see

@ann0see ann0see commented Feb 7, 2021

Copy link
Copy Markdown
Member

This will support macOS < 10.13.

Fixes #959

Although I didn't receive an answer yet, I think this doesn't break anything.

This will support macOS < 10.13.

Fixes jamulussoftware#959
@ann0see ann0see marked this pull request as ready for review February 7, 2021 09:50
@ann0see

ann0see commented Feb 7, 2021

Copy link
Copy Markdown
Member Author

Seems that it doesn’t break the app on Big Sur. I think that’s enough.

@ann0see ann0see requested a review from a team February 7, 2021 14:59

@softins softins left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Builds and installs fine on Mojave, 10.14. I can't test it with an earlier macOS.

@pljones

pljones commented Feb 8, 2021

Copy link
Copy Markdown
Collaborator

Has anyone checked to see if Github offer an earlier MacOS builder?

It's probably worth always running the minimum and latest versions of a platform we intend to say we support. MacOS, of course, being the right pain in terms of constant change.

@softins

softins commented Feb 8, 2021

Copy link
Copy Markdown
Member

Does this also need changes to codeql-analysis.yml? That is still referring to Qt 5.15.2 for Mac.

@ann0see

ann0see commented Feb 8, 2021

Copy link
Copy Markdown
Member Author

Just got a positive feedback from the tester. Seems to work. Not sure if we can use an even earlier version of Qt, but that should be possible.

@ann0see

ann0see commented Feb 8, 2021

Copy link
Copy Markdown
Member Author

Should we try qt 5.9 (but for me it seems to be quite old). It might even support macOS 10.10

@ann0see

ann0see commented Feb 9, 2021

Copy link
Copy Markdown
Member Author

Does this also need changes to codeql-analysis.yml

Not necessarily.

Should we try qt 5.9

Do we know which version of Qt corrados used to compile the binaries?

@softins

softins commented Feb 9, 2021

Copy link
Copy Markdown
Member

Do we know which version of Qt corrados used to compile the binaries?

On my PC, the Qt DLLs bundled with Jamulus 3.6.2 are version 5.15.1. That works for me on Win7.

On my Mac, looking in /Applications/Jamulus.app/Contents/Frameworks/QtCore.framework/Versions/5/Resources/Info.plist I can see that it bundled version 5.9.4

@ann0see

ann0see commented Feb 9, 2021

Copy link
Copy Markdown
Member Author

Ok. So we could probly also use qt 5.9. What about 5.9.9 does it work?

@softins

softins commented Feb 9, 2021

Copy link
Copy Markdown
Member

Ok. So we could probly also use qt 5.9. What about 5.9.9 does it work?

Probably, as it's just a minor version number change. I could try it tomorrow.

@ann0see

ann0see commented Feb 9, 2021

Copy link
Copy Markdown
Member Author

Ok. Great!

@pljones

pljones commented Feb 9, 2021

Copy link
Copy Markdown
Collaborator

OK, I tried 5.9.9 here pljones#7 and it failed.... but for the wrong reason. The MacOS build ended with:

ld: warning: directory not found for option '-F/Users/qt/work/install/lib'

and still claimed to have worked. I'm trying a re-run now...

@softins

softins commented Feb 9, 2021

Copy link
Copy Markdown
Member

OK, I tried 5.9.9 here pljones#7 and it failed.... but for the wrong reason. The MacOS build ended with:

ld: warning: directory not found for option '-F/Users/qt/work/install/lib'

and still claimed to have worked. I'm trying a re-run now...

Just been watching it, and that was just a warning, that an additional directory it was told to look for libs when linking wasn't found. So long as it still found all the libs it wanted to link, it shouldn't matter. If it couldn't, it would have been a hard error.

It looks like the warning is because it said /Users/qt/... when everything else is under /Users/runner/.... Not sure whether that's a bug in our build script or the Github environment.

@softins

softins commented Feb 9, 2021

Copy link
Copy Markdown
Member

I've just changed 5.12.9 to 5.9.9 and tried the build from scratch on my Mac.

Worked fine, and installed and ran successfully too. The Info.plist files correctly identified the bundled Qt as 5.9.9

@softins

softins commented Feb 10, 2021

Copy link
Copy Markdown
Member

Just as an interesting data point, MuseScore, which uses Qt, advertises itself as compatible with macOS 10.10 (Yosemite) onwards and Windows 7 onwards. The Mac build uses Qt 5.9.8 (although I'm sure 5.9.9 would be equally compatible, as a minor version change only), and the PC build uses Qt 5.9.9

@softins

softins commented Feb 10, 2021

Copy link
Copy Markdown
Member

I've just closely examined the build log on my Mac, and it shows exactly the same error message, so it's not a problem with Github or the action. This is the link step:

/Library/Developer/CommandLineTools/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Develop
er/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.10 -Wl,-rpath,@executable_path/Frameworks -Wl,-rpath,/usr/local/opt/qt/5.9.9/clang_64/lib -o Jamulus.app/Contents/MacOS/Jamulus sound.o buffer.o channel.o
 client.o main.o protocol.o jamcontroller.o server.o serverlist.o serverlogging.o settings.o signalhandler.o socket.o soundbase.o util.o jamrecorder.o creaperproject.o cwavestream.o audiomixerboard.o ch
atdlg.o clientsettingsdlg.o connectdlg.o clientdlg.o serverdlg.o multicolorled.o levelmeter.o analyzerconsole.o bands.o celt.o celt_decoder.o celt_encoder.o celt_lpc.o cwrs.o entcode.o entdec.o entenc.o
 kiss_fft.o laplace.o mathops.o mdct.o modes.o pitch.o quant_bands.o rate.o vq.o A2NLSF.o ana_filt_bank_1.o biquad_alt.o bwexpander.o bwexpander_32.o check_control_input.o CNG.o code_signs.o control_aud
io_bandwidth.o control_codec.o control_SNR.o debug.o decoder_set_fs.o decode_core.o decode_frame.o decode_indices.o decode_parameters.o decode_pitch.o decode_pulses.o dec_API.o encode_indices.o encode_p
ulses.o enc_API.o apply_sine_window_FLP.o autocorrelation_FLP.o burg_modified_FLP.o bwexpander_FLP.o corrMatrix_FLP.o encode_frame_FLP.o energy_FLP.o find_LPC_FLP.o find_LTP_FLP.o find_pitch_lags_FLP.o
find_pred_coefs_FLP.o inner_product_FLP.o k2a_FLP.o LPC_analysis_filter_FLP.o LTP_analysis_filter_FLP.o LTP_scale_ctrl_FLP.o noise_shape_analysis_FLP.o pitch_analysis_core_FLP.o process_gains_FLP.o resi
dual_energy_FLP.o scale_copy_vector_FLP.o scale_vector_FLP.o schur_FLP.o sort_FLP.o warped_autocorrelation_FLP.o wrappers_FLP.o gain_quant.o HP_variable_cutoff.o init_decoder.o init_encoder.o inner_prod
_aligned.o interpolate.o lin2log.o log2lin.o LPC_analysis_filter.o LPC_fit.o LPC_inv_pred_gain.o LP_variable_cutoff.o NLSF2A.o NLSF_decode.o NLSF_del_dec_quant.o NLSF_encode.o NLSF_stabilize.o NLSF_unpa
ck.o NLSF_VQ.o NLSF_VQ_weights_laroia.o NSQ.o NSQ_del_dec.o pitch_est_tables.o PLC.o process_NLSFs.o quant_LTP_gains.o resampler.o resampler_down2.o resampler_down2_3.o resampler_private_AR2.o resampler
_private_down_FIR.o resampler_private_IIR_FIR.o resampler_private_up2_HQ.o resampler_rom.o shell_coder.o sigm_Q15.o sort.o stereo_decode_pred.o stereo_encode_pred.o stereo_find_predictor.o stereo_LR_to_
MS.o stereo_MS_to_LR.o stereo_quant_pred.o sum_sqr_shift.o tables_gain.o tables_LTP.o tables_NLSF_CB_NB_MB.o tables_NLSF_CB_WB.o tables_other.o tables_pitch_lag.o tables_pulses_per_block.o table_LSF_cos
.o VAD.o VQ_WMat_EC.o analysis.o mlp.o mlp_data.o opus.o opus_decoder.o opus_encoder.o repacketizer.o activity.o qrc_resources.o moc_channel.o moc_client.o moc_protocol.o moc_jamcontroller.o moc_server.
o moc_serverlist.o moc_settings.o moc_socket.o moc_soundbase.o moc_testbench.o moc_util.o moc_jamrecorder.o moc_creaperproject.o moc_signalhandler.o moc_audiomixerboard.o moc_chatdlg.o moc_clientsetting
sdlg.o moc_connectdlg.o moc_clientdlg.o moc_serverdlg.o moc_levelmeter.o moc_analyzerconsole.o   -F/usr/local/opt/qt/5.9.9/clang_64/lib -framework CoreFoundation -framework CoreServices -framework CoreA
udio -framework CoreMIDI -framework AudioToolbox -framework AudioUnit -framework Foundation -framework QtWidgets -framework QtGui -framework QtCore -framework DiskArbitration -framework IOKit -framework
 QtMacExtras -F/Users/qt/work/install/lib -framework QtNetwork -framework QtXml -framework QtConcurrent -framework OpenGL -framework AGL

ld: warning: directory not found for option '-F/Users/qt/work/install/lib'

Just investigating...

@softins

softins commented Feb 10, 2021

Copy link
Copy Markdown
Member

It appears to be something hard-coded within the homebrew installation of Qt. I would just ignore it, it's benign.

@ann0see

ann0see commented Feb 10, 2021

Copy link
Copy Markdown
Member Author

hard-coded within the homebrew installation of Qt

Are you really using homebrew here? I thought (at least the GH Action) used aqt to install Qt?

@softins

softins commented Feb 10, 2021

Copy link
Copy Markdown
Member

hard-coded within the homebrew installation of Qt

Are you really using homebrew here? I thought (at least the GH Action) used aqt to install Qt?

I think aqt must be using it behind the scenes, as I found the references in /usr/local/var/homebrew/linked/qt/5.9.9/clang_64/... and the build script is the only way I have ever fetched 5.9.9 on this Mac.

@ann0see

ann0see commented Feb 10, 2021

Copy link
Copy Markdown
Member Author

That's really strange. At least in this PR I moved away from homebrew. The path should also be /usr/local/opt/qt.

@softins

softins commented Feb 10, 2021

Copy link
Copy Markdown
Member

I don't fully understand it yet, but I also have a 5.12.9 under /usr/local/var/homebrew too, from the original build I did with this PR

@ann0see

ann0see commented Feb 10, 2021

Copy link
Copy Markdown
Member Author

Strange. Maybe you have two versions of Qt installed?

Have a look at this gh actions run: https://github.com/ann0see/jamulus/actions/runs/555358355

I just pushed the 5.9.9 version. Let's wait and see if it works.

@ann0see

ann0see commented Feb 10, 2021

Copy link
Copy Markdown
Member Author

Yes. It seems to work (although I haven't tested the binary yet.)

@softins

softins commented Feb 10, 2021

Copy link
Copy Markdown
Member

Strange. Maybe you have two versions of Qt installed?

The only way I have installed those two versions of Qt is by running the autorelease_mac.sh script, firstly the version in the PR with 5.12.9, and secondly after editing it to refer to 5.9.9, so I have to infer that either aqt is using homebrew behond the scenes, or the build process is.

@ann0see

ann0see commented Feb 10, 2021

Copy link
Copy Markdown
Member Author

That's really strange. I'm quite sure that no other script (at least from which I know) installs it via brew.
Did you use another version of Qt on your mac before running autorelease_mac.sh? Maybe this causes the problem?

@pljones

pljones commented Feb 10, 2021

Copy link
Copy Markdown
Collaborator

OK - @ann0see do you want to change the CodeQL to use 5.9.9 in this same PR? That should be kept in line (I really wish it was just all part of the same work flow).

@ann0see

ann0see commented Feb 10, 2021

Copy link
Copy Markdown
Member Author

Hmm. I think @nefarius2001 is working on something (at least I saw some activity on his repo). Yes, CodeQl and this should both use the same version of Qt, I think. Can somebody please check if the produced binary on my repo works on older macOS versions?

@nefarius2001

Copy link
Copy Markdown
Contributor

true, I create #978 to give a preview

@softins

softins commented Feb 10, 2021

Copy link
Copy Markdown
Member

OK, I've tracked down where the homebrew stuff comes from on my Mac. I installed Qt 5.15.1 in October using brew, when I was testing out my work on audio packet ordering. That installed Qt into /usr/local/Cellar/qt/5.15.1 and it also set up the following symbolic links:

Tonys-MBP:jamulus tony$ ls -l /usr/local/var/homebrew/linked/qt /usr/local/opt/qt*
lrwxr-xr-x  1 tony  admin  19 13 Oct 15:04 /usr/local/opt/qt -> ../Cellar/qt/5.15.1
lrwxr-xr-x  1 tony  admin  19 13 Oct 15:04 /usr/local/opt/qt5 -> ../Cellar/qt/5.15.1
lrwxr-xr-x  1 tony  admin  25 13 Oct 15:04 /usr/local/var/homebrew/linked/qt -> ../../../Cellar/qt/5.15.1

Consequently, when aqt installed the older versions under /usr/local/opt/qt, it followed the existing symbolic link and installed them there. Since the homebrew link pointed to the same place, they appeared to be under there too, when doing a grep -r.

So the homebrew stuff is a red herring, but the installed versions of Qt under /usr/local/opt/qt do still have hard-coded references to /Users/qt/.... But as I said, that appears to be benign.

@pljones

pljones commented Feb 11, 2021

Copy link
Copy Markdown
Collaborator

true, I create #978 to give a preview

Are we going to close this and proceed there?

@ann0see

ann0see commented Feb 11, 2021

Copy link
Copy Markdown
Member Author

Yes. I'll close this now.

@ann0see ann0see closed this Feb 11, 2021
@ann0see ann0see reopened this Feb 17, 2021
@ann0see

ann0see commented Feb 17, 2021

Copy link
Copy Markdown
Member Author

@pljones if #978 takes too long for you (for the next release), we can also merge this one.

@pljones pljones left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the commented out brew lines but that's non-blocking.

@ann0see

ann0see commented Feb 18, 2021

Copy link
Copy Markdown
Member Author

I'm not sure: since nefarius's PR is almost finished, we could just close this or do you want this to be merged?

@pljones

pljones commented Feb 18, 2021

Copy link
Copy Markdown
Collaborator

Wait for now.

@ann0see ann0see merged commit b22fc95 into jamulussoftware:master Feb 18, 2021
@ann0see ann0see deleted the UseOldQt branch February 18, 2021 21:17
@pljones pljones added this to the Release 3.7.0 milestone Nov 24, 2024
@pljones pljones moved this from Triage to Done in Tracking Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Qt 5.15 breaks macOS < 10.13 support

4 participants